home *** CD-ROM | disk | FTP | other *** search
/ Scene Storm / Scene Storm - Volume 1.iso / coding / asm / misc / progressbar / testbar-normal.s < prev   
Text File  |  1980-01-03  |  2KB  |  150 lines

  1. ;Bevel box Progress bar
  2.  
  3. ; A0 - Window
  4.  
  5. ; D0 - Bar start X coord
  6. ; D1 - Bar start Y coord
  7. ; D2 - Bar width
  8. ; D3 - Bar height
  9.  
  10. ;-----------------------------------------------------------------------
  11. BuildBar:    Move.W    D0,BarX
  12.     Move.W    D1,BarY
  13.  
  14.     Move.L    (wd_RPort,A0),WRPort
  15.  
  16.     Lea    (ProgressBox,PC),A0
  17.     Lea    (Coords,A0),A0
  18.  
  19.     Move.W    D2,(A0)+
  20.     Move.W    D3,(A0)+
  21.     Move.W    D2,(A0)+
  22.     Addq    #2,A0
  23.     Add.W    D2,(A0)+
  24.     Addq    #2,A0
  25.     Add.W    D2,(A0)+
  26.     Move.W    D3,(A0)+
  27.     Addq    #2,A0
  28.     Move.W    D3,(A0)+
  29.     Addq    #6,A0
  30.     Move.W    D3,(A0)+
  31.     Addq    #2,A0
  32.     Add.W    D3,(A0)+
  33.     Addq    #4,A0
  34.     Add.W    D2,(A0)+
  35.  
  36.     Addq    #2,D0
  37.     Move.W    D0,BoxX
  38.     Add.W    D2,D0
  39.     Subq    #4,D0
  40.     Move.W    D0,BoxX2
  41.  
  42.     Addq    #1,D1
  43.     Move.W    D1,BoxY
  44.     Add.W    D3,D1
  45.     Subq    #2,D1
  46.     Move.W    D1,BoxY2
  47.  
  48.     Clr.L    D0
  49.     Clr.L    D1
  50.  
  51.     Move.L    (WRPort,PC),A0
  52.     Lea    (ProgressBox,PC),A1
  53.     Move.W    (BarX,PC),D0
  54.     Move.W    (BarY,PC),D1
  55.     CALL    DrawBorder,INTUI
  56.  
  57. ;-----------------------------------------------------------------------
  58. ClearBar:    Move.W    (BoxX,PC),BarCount
  59.  
  60.     Clr.L    D1
  61.     Clr.L    D2
  62.     Clr.L    D3
  63.  
  64.     Move.L    (WRPort,PC),A1
  65.     Moveq    #0,D0        ;pen colour
  66.     CALL    SetAPen,GRAPH
  67.  
  68.     Move.L    (WRPort,PC),A0
  69.     Move.W    (BoxX,PC),D0
  70.     Move.W    (BoxY,PC),D1
  71.     Move.W    (BoxX2,PC),D2
  72.     Move.W    (BoxY2,PC),D3
  73.     CALL    RectFill
  74.     Rts
  75.  
  76. ;-----------------------------------------------------------------------
  77. UpdateBar:    Clr.L    D3
  78.     Clr.L    D5
  79.     Clr.L    D6
  80.     Clr.L    D7
  81.  
  82.     Move.L    (WRPort,PC),A3
  83.     Move.W    (BoxX2,PC),D5
  84.     Move.W    (BoxY,PC),D6
  85.     Move.W    (BoxY2,PC),D7
  86.     Move.W    (BarCount,PC),D3
  87.  
  88.     Move.L    D5,D2
  89.     Addq    #1,D2
  90.     Cmp.W    D2,D3
  91.     Beq    .NoMore
  92.  
  93.     Moveq    #3,D0
  94.     Move.L    A3,A1
  95.     CALL    SetAPen,GRAPH
  96.  
  97.     Move.W    D3,D0
  98.     Move.W    D6,D1
  99.     Move.L    A3,A1
  100.     CALL    Move
  101.  
  102.     Move.W    D3,D0
  103.     Move.W    D7,D1
  104.     Move.L    A3,A1
  105.     CALL    Draw
  106.  
  107.     Addq.W    #1,BarCount
  108. .NoMore    Rts
  109.  
  110. ;-----------------------------------------------------------------------
  111. BarCount:    Dc.W    0
  112.  
  113. BarX:    Dc.W    0
  114. BarY:    Dc.W    0
  115.  
  116. BoxX:    Dc.W    0
  117. BoxY:    Dc.W    0
  118.  
  119. BoxX2:    Dc.W    0
  120. BoxY2:    Dc.W    0
  121.  
  122. WRPort:    Dc.L    0
  123.  
  124. ;----------------------
  125. ProgressBox:    Dc.W    0,0
  126.     Dc.B    2,0,RP_JAM1
  127.     Dc.B    5
  128.     Dc.L    .IBorderVectors
  129.     Dc.L    .IBorderb
  130.  
  131. .IBorderb    Dc.W    0,0
  132.     Dc.B    1,0,RP_JAM1
  133.     Dc.B    5
  134.     Dc.L    .IBorderVectorsb
  135.     Dc.L    0
  136.  
  137. Coords    Equ    *-ProgressBox
  138. .IBorderVectors
  139.     Dc.W    0,0
  140.     Dc.W    0,0
  141.     Dc.W    -1,1
  142.     Dc.W    -1,0
  143.     Dc.W    0,0
  144. .IBorderVectorsb
  145.     Dc.W    0,0
  146.     Dc.W    0,0
  147.     Dc.W    1,-1
  148.     Dc.W    1,0
  149.     Dc.W    -1,0
  150.